In a typical real-time analytics system, various front-end software applications provide customer transaction data directly to an analytical engine that is capable of executing analytical tasks. An example of such an analytical engine is a prediction engine that provides useful, predictive output relating to a transaction with a customer. An analytical engine is capable of processing real-time data from a customer to execute analytical tasks and to generate output in real time. Often, the analytical engine will use the real-time data in coordination with a data mining model to generate a predictive output. A data mining model typically contains rules and patterns derived from historical data that has been collected, synthesized, and formatted.
In many instances, a predictive output generated upon execution of an analytical task is fed into a business rule engine. The business rule engine will use the predictive output in conjunction with its rule set to determine if certain events should be triggered in a given front-end software application. For example, the business rule engine may determine that a special promotional offer should be provided to a particular customer given the content of the predictive output and the nature of the transaction with that customer. In some instances, the front-end software applications may directly process the predictive output.
Typically, front-end software applications will need predictive output in a short period of time. For example, if a call-center agent is using a front-end software application to interact with a customer online, the agent will typically need predictive output fairly quickly in order to interact with the customer in an efficient fashion. If the front-end application has not received any predictive output after a specified period of time, due to performance delays or other issues on a prediction engine, the application can choose either to continue waiting, or to proceed in the customer interaction without any predictive output. If the front-end application chooses to wait, the quality of the customer interaction may be compromised, because the call-center agent may not be able to respond as quickly to the customer's requests. If the front-end application chooses to proceed without having received any predictive output, the quality of the customer interaction may also be compromised, because the call-center agent may not have sufficient information to proceed intelligently with the customer interaction.